﻿-- @fn lastIndexOf 返回searchString出现的最后一次的索引 
-- @params searchString ：需要搜索的字符串 
-- @params str ： 被搜索的字符串  
-- @params position : str的索引,只会在索引范围内搜索,如果是-1代表搜索范围是 0~ str.count 
-- @return undefined || index 返回最后一次出现的索引 如果没找到返回undefined 
fn lastIndexOf searchString str position:-1 =(  
	if ( position > str.count or position == -1) then (  
		position = str.count  
	)  

	local limitedStr = substring str 1 position  
	local index = 0  

	while index != undefined do (  
		index = findstring limitedStr searchString  

		if index != undefined then (  
			local first = index + 1  
			local LAST = -1  
			limitedStr = substring limitedStr first LAST  
		)  
	)  

	if limitedStr.count == (amin #(position, str.count)) then (  
		/*return*/ undefined  
	) else (  
		/*return*/ position - limitedStr.count  
	) 
) 
-- @fn wrapText : 文字换行 
-- @params input : 需要换行的文字 
-- @params maxLineLength ： 一行最大的长度 
-- @params  WHITESPACE : ""每个字符都可以换行 " "只有单词间隔才可以换行 
fn wrapText inputText maxLineLength WHITESPACE:""=(  
	local wrappedText = ""  
	local index = 0  

	while (index != undefined) and (inputText.count > maxLineLength) do (  
		index = lastIndexOf WHITESPACE inputText maxLineLength  

		if index != undefined then (  
			wrappedText += substring inputText 1 index  
			wrappedText += "\n"  
			local first = index + 1  
			local LAST = -1  
			inputText = substring inputText first LAST  
		)  
	)  
	wrappedText += inputText  

	/*return*/ wrappedText 
) 